package membermodel

import "yundian/internel/pkg/dingo"

// ================ 原有线充会员表 ======================================== //

type MembersModel struct {
	ID            int        `gorm:"column:id" json:"-"`
	AppId         string     `gorm:"column:app_id" json:"appId"`
	UUID          string     `gorm:"column:uuid" json:"-"`
	RegFrom       string     `gorm:"column:reg_from" json:"regFrom"`      // 使用什么方式注册的 0 h5 1小程序 2公众号 3支付宝
	Headimgurl    string     `gorm:"column:headimgurl" json:"headimgurl"` // 头像
	NickName      string     `gorm:"column:nick_name" json:"nickName"`    // 昵称
	State         int8       `gorm:"column:state" json:"state"`           // 状态 0 全部 1 白名单  2黑名单
	Sex           int8       `gorm:"column:sex" json:"-"`                 // 性别
	Subscribe     int8       `gorm:"column:subscribe" json:"-"`           // 是否关注公众号
	Balance       int64      `gorm:"column:balance" json:"balance"`             // 用户余额
	Unionid       string     `gorm:"column:unionid" json:"-"`             // 微信唯一id,只有绑定到开放平台才会有
	WxOpenid      string     `gorm:"column:wx_openid" json:"-"`           // 公众号openid,公众号唯一
	XcxOpenid     string     `gorm:"column:xcx_openid" json:"-"`          // 小程序openid,小程序唯一
	Country       string     `gorm:"column:country" json:"-"`             // 用户所在国家
	Province      string     `gorm:"column:province" json:"-"`            // 用户所在省份
	City          string     `gorm:"column:city" json:"-"`                // 用户所在城市
	Phone         string     `gorm:"column:phone" json:"-"`               // 用户手机号码
	CreateAt      dingo.Time `gorm:"column:create_at" json:"createAt"`    // 会员加入时间
	UpdateAt      dingo.Time `gorm:"column:update_at" json:"updateAt"`    // 会员加入时间
	LastLoginTime dingo.Time `gorm:"column:last_login_time" json:"-"`     // 会员最后登录时间
	LastLoginIP   string     `gorm:"column:last_login_ip" json:"-"`       // 会员最后登录ip
}

func New() *MembersModel {
	return &MembersModel{}
}

func (model *MembersModel) Mutate(attrs ...MembersAttr) *MembersModel {
	MembersAttrs(attrs).Apply(model)
	return model
}

func (model *MembersModel) GetTableName() string {
	return "members"
}
